home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 09, No. 08 (1988-08)(MicroSPARC)(Side A).zip / Nibble Volume 09, No. 08 (1988-08)(MicroSPARC)(Side A).po / SLOT3.IO.ASM.txt < prev    next >
Text File  |  1996-12-24  |  3KB  |  94 lines

  1. ;................................................................
  2. ;
  3. ; Set slot 3 text I/O:
  4. ;................................................................
  5.  
  6. ; Save entry I/O configuration:
  7.  
  8. Set_S3     START
  9.  
  10.            PHA                       ;reserve space for results
  11.            PHA
  12.            PHA
  13.            _GetInputDevice
  14.            PullLong IO_Data          ;save input slot or vector
  15.            PullWord IO_Data+4        ;save input device code
  16.  
  17.            PHA                       ;reserve space for results
  18.            PHA
  19.            _GetInGlobals
  20.            PullWord IO_Data+6        ;save input OR mask
  21.            PullWord IO_Data+8        ;save input AND mask
  22.  
  23.            PHA                       ;reserve space for results
  24.            PHA
  25.            PHA
  26.            _GetOutputDevice
  27.            PullLong IO_Data+10       ;save output slot/vector
  28.            PullWord IO_Data+14       ;save output device code
  29.  
  30.            PHA                       ;reserve space for results
  31.            PHA
  32.            _GetOutGlobals
  33.            PullWord IO_Data+16       ;save output OR mask
  34.            PullWord IO_Data+18       ;save output AND mask
  35.  
  36. ; Set slot 3 text I/O (negative ASCII):
  37.  
  38.            PushWord #0               ;BASIC device type
  39.            PushLong #3               ;Input from slot 3
  40.            _SetInputDevice           ;no result
  41.  
  42.            PushWord #0               ;BASIC device type
  43.            PushLong #3               ;Output to slot 3
  44.            _SetOutputDevice          ;no result
  45.  
  46.            PushWord #$FF             ;AND mask (no change)
  47.            PushWord #$80             ;OR mask (set high bit)
  48.            _SetInGlobals             ;no result
  49.  
  50.            PushWord #$FF             ;AND mask (no change)
  51.            PushWord #$80             ;OR mask (set high bit)
  52.            _SetOutGlobals            ;no result
  53.  
  54.            PushWord #0               ;input device
  55.            _InitTextDev
  56.            PushWord #1               ;output device
  57.            _InitTextDev
  58.  
  59.            RTL
  60.  
  61. ;................................................................
  62. ;
  63. ; Restore entry I/O configuration:
  64. ;................................................................
  65.  
  66. Restore_IO ENTRY
  67.  
  68.            PushWord IO_Data+18       ;output AND mask
  69.            PushWord IO_Data+16       ;output OR mask
  70.            _SetOutGlobals
  71.  
  72.            PushWord IO_Data+14       ;output device code
  73.            PushLong IO_Data+10       ;output slot/vector
  74.            _SetOutputDevice
  75.  
  76.            PushWord IO_Data+8        ;input AND mask
  77.            PushWord IO_Data+6        ;input OR mask
  78.            _SetInGlobals
  79.  
  80.            PushWord IO_Data+4        ;input device code
  81.            PushLong IO_Data          ;input slot/vector
  82.            _SetInputDevice
  83.  
  84.            PushWord #0               ;input device
  85.            _InitTextDev
  86.            PushWord #1               ;output device
  87.            _InitTextDev
  88.  
  89.            RTL
  90.  
  91. IO_Data    DS       20               ;I/O configuration storage
  92.  
  93.            END
  94.